/**
 * ReportGear(2011)
 */
package com.reportgear.designer.gui.controlpane;

import javax.swing.Icon;

import com.reportgear.core.api.Nameable;
import com.reportgear.core.swing.pane.base.EditorPane;

/**
 * Nameable对象创建接口
 * 
 * @version 1.0 2011-4-26
 * @author <a herf="lexloo@gmail.com">lexloo</a>
 * @since Report 1.0
 */
public interface NameableCreator<T extends Nameable> {
	/**
	 * @return 菜单名称
	 */
	public String menuName();

	/**
	 * 
	 * @return 菜单图标
	 */
	public Icon menuIcon();

	/**
	 * 
	 * @return 名称前缀
	 */
	public String namePrefix();

	/**
	 * 
	 * @return 创建Namebale对象
	 */
	public T createNameable();

	/**
	 * 
	 * @return 获取更新面板
	 */
	public EditorPane<T> getUpdatePane();
}
